%@TH: 025 1978 01 19 57 @%%@AB@%Option Action%@AE@%───────────────────────────────────────────────────────────────────────────%@AB@%/A%@AE@% Writes segments in alphabetical order%@QR:masm /a@%%@AB@%/B%@AI@%number%@AE@% Sets buffer size%@QR:masm /b@%%@AB@%/C%@AE@% Specifies a cross-reference file%@QR:masm /c@%%@AB@%/D%@AE@% Creates a Pass 1 listing%@QR:masm /d@%%@AB@%/D%@AI@%symbol%@AE@%«=%@AI@%value%@AE@%» Defines assembler symbol%@QR:masm /d@%%@AB@%/E%@AE@% Emulates floating-point instructions%@QR:masm /e@%%@AB@%/H%@AE@% Lists options and command-line syntax%@QR:masm /h@%%@AB@%/I%@AI@%path%@AE@% Sets include-file search path%@QR:masm /i@%%@AB@%/L%@AE@% Specifies an assembly-listing file%@QR:masm /l@%%@AB@%/ML%@AE@% Preserves case in names%@QR:masm /ml@%%@AB@%/MU%@AE@% Converts names to uppercase (default)%@QR:masm /mu@%%@AB@%/MX%@AE@% Preserves case in public and external names%@QR:masm /mx@%%@AB@%/N%@AE@% Suppresses tables in listing file%@QR:masm /n@%%@AB@%/P%@AE@% Checks for impure code%@QR:masm /p@%%@AB@%/S%@AE@% Writes segments in sequential order (default)%@QR:masm /s@%%@AB@%/T%@AE@% Suppresses messages for successful assembly%@QR:masm /t@%%@AB@%/V%@AE@% Displays extra statistics%@QR:masm /v@%%@AB@%/W{0|1|2}%@AE@% Sets error display level%@QR:masm /w@%%@AB@%/X%@AE@% Shows false conditional blocks in listings%@QR:masm /x@%%@AB@%/Z%@AE@% Displays error lines on screen%@QR:masm /z@%%@AB@%/ZD%@AE@% Puts line number information in the object file%@QR:masm /zd@%%@AB@%/ZI%@AE@% Puts symbolic and line number information in%@QR:masm /zi@% the object file (for CodeView(R) debugger)%@TE: 025 1978 01 19 57 @%
%@TH: 046 2225 01 19 57 @%%@AB@%Option Action%@AE@%───────────────────────────────────────────────────────────────────────────%@AB@%/B%@AE@% Prevents prompting when errors are encountered (for%@QR:link /b@% make and batch files)%@AB@%/CO%@AE@% Creates a special-format executable file containing%@QR:link /co@% symbolic information needed by the CodeView debugger%@AB@%/CP:%@AI@%number%@AE@% Sets the program's maximum allocation to %@AI@%number%@AE@% of%@QR:link /cp@% paragraphs%@AB@%/DO%@AE@% Orders segments in the default order used by Microsoft%@QR:link /do@% high-level languages%@AB@%/E%@AE@% Packs the executable file%@QR:link /e@%%@AB@%/F%@AE@% Optimizes far calls%@QR:link /f@%%@AB@%/HE%@AE@% Displays %@AB@%LINK%@AE@% options%@QR:link /he@%%@AB@%/I%@AE@% Displays linking information, including the name of each%@QR:link /i@% input module as it is linked%@AB@%/L%@AE@% Lists line numbers and addresses of source statements in%@QR:link /l@% the map file%@AB@%/M%@AE@%«%@AB@%:%@AI@%number%@AE@%» Lists all public symbols in the map file (%@AI@%number%@AE@% is the%@QR:link /m@% maximum number of symbols)%@AB@%/NOD%@AE@% Ignores default libraries%@QR:link /nod@%%@AB@%/NOF%@AE@% Disables far call optimization%@QR:link /nof@%%@AB@%/NOI%@AE@% Distinguishes between uppercase and lowercase letters%@QR:link /noi@%%@AB@%/NOP%@AE@% Disables code segment packing%@QR:link /nop@%%@AB@%/PAC%@AE@% Packs contiguous code segments%@QR:link /pac@%%@AB@%/PAU%@AE@% Pauses during the link session for disk changes%@QR:link /pau@%%@AB@%/Q%@AE@% Creates an in-memory (load-time) library for a Quick%@QR:link /q@% language (such as QuickBASIC)%@AB@%/ST:%@AI@%number%@AE@% Sets the stack size to %@AI@%number%@AE@%, which may be up to%@QR:link /st@% 65,536 bytes%@TE: 046 2225 01 19 57 @%
Note: Several rarely used options not listed above are described in the
%@TH: 032 1530 01 19 57 @%%@AB@%Option Action%@AE@%───────────────────────────────────────────────────────────────────────────%@AB@%/2%@AE@% Enables use with two monitors and two graphics adapters%@QR:cv /2@%%@AB@%/43%@AE@% Starts in 43-line mode on EGA%@QR:cv /43@%%@AB@%/B%@AE@% Starts in black-and-white mode%@QR:cv /b@%%@AB@%/C%@AI@%commands%@AE@% Executes %@AI@%commands%@AE@% on start-up%@QR:cv /c@%%@AB@%/D%@AE@% Turns off nonmaskable interrupt and 8259 interrupt%@QR:cv /d@% trapping (necessary for some compatibles)%@AB@%/E%@AE@% Enables expanded memory support%@QR:cv /e@%%@AB@%/F%@AE@% Starts with screen flipping (exchanges screens by%@QR:cv /f@% flipping video pages)%@AB@%/I%@AE@% Forces the debugger to handle nonmaskable interrupt and%@QR:cv /i@% 8259 interrupt trapping (necessary for some compatibles)%@AB@%/M%@AE@% Disables the mouse%@QR:cv /m@%%@AB@%/P%@AE@% Disables palette-register saving (necessary for some%@QR:cv /p@% EGA-compatible adapters)%@AB@%/S%@AE@% Starts with screen swapping (exchanges screens by%@QR:cv /s@% changing buffers)%@AB@%/T%@AE@% Starts in sequential mode%@QR:cv /t@%%@AB@%/W%@AE@% Starts in window mode (necessary for some compatibles)%@QR:cv /w@%%@TE: 032 1530 01 19 57 @%
%@TH: 028 02012 01 25 16 35 @%%@AB@%Action Keyboard Mouse%@AE@%───────────────────────────────────────────────────────────────────────────Open help screen %@AB@%F1%@AE@% Help menuToggle register window %@AB@%F2%@AE@% Registers from View menuToggle display mode %@AB@%F3%@AE@% Source, Mixed, or Assembly from View menuSwitch to output screen %@AB@%F4%@AE@% Output from View menuGo %@AB@%F5%@AE@% Click left on GoSwitch display/dialog %@AB@%F6%@AE@% NoneExecute to here %@AB@%F7%@AE@% at cursor Click right at locationTrace through %@AB@%F8%@AE@% Click left on TraceSet breakpoint here %@AB@%F9%@AE@% at cursor Click left at locationStep over %@AB@%F10%@AE@% Click right on TraceChange flag None Click left on flagScroll up line None Click left on up arrowScroll up page %@AB@%PGUP%@AE@% Click left above elevatorScroll to top %@AB@%HOME%@AE@% Drag elevator to topScroll down line None Click left on down arrowScroll down page %@AB@%PGDN%@AE@% Click left below elevatorScroll to bottom %@AB@%END%@AE@% Drag elevator to bottomScroll to location None Drag elevator to locationMove cursor up %@AB@%UP%@AE@% arrow NoneMove cursor down %@AB@%DOWN%@AE@% arrow NoneMake window grow %@AB@%CTRL+G%@AE@% Drag line up or downMake window tiny %@AB@%CTRL+T%@AE@% Drag line up or downFind text %@AB@%CTRL+F%@AE@% Find from Search menuAdd watch expression %@AB@%CTRL+W%@AE@% Add Watch from Watch menuDelete watch statement %@AB@%CTRL+U%@AE@% Delete Watch from Watch menu%@TE: 028 02012 01 25 16 35 @%
%@4@%Use with Display Expression, Watch Expression, and Tracepoint Expression%@EH@%
dialog commands.%@NL@%
%@NL@%
%@TH: 030 01556 01 12 26 38 @%%@AB@%Character Argument Type Output Format%@AE@%───────────────────────────────────────────────────────────────────────────%@AB@%d%@AE@% or %@AB@%i%@AE@% Integer Signed decimal integer%@AB@%u%@AE@% Integer Unsigned decimal integer%@AB@%o%@AE@% Integer Unsigned octal integer%@AB@%x%@AE@% or %@AB@%X%@AE@% Integer Hexadecimal integer%@AB@%f%@AE@% Floating point Signed value in floating-point decimal format with six decimal places%@AB@%e%@AE@% or %@AB@%E%@AE@% Floating point Signed value in scientific- notation format with up to six decimal places (trailing zeros or decimal point truncated)%@AB@%g%@AE@% or %@AB@%G%@AE@% Floating point Signed value with floating- point decimal or scientific notation, whichever is more compact%@AB@%c%@AE@% Character Single character%@AB@%s%@AE@% String Characters printed up to the first null (C null-terminated strings only)%@TE: 030 01556 01 12 26 38 @%
%@4@%Note: If appropriate for the language, the prefix %@AB@%l%@AE@% can be used with%@EH@%
the integer format specifiers (%@AB@%d%@AE@%, %@AB@%o%@AE@%, %@AB@%u%@AE@%, %@AB@%x%@AE@%, and %@AB@%X%@AE@%) to specify a four-byte
integer. The prefix %@AB@%h%@AE@% can be used with the same types to specify a two-
%@TH: 122 6248 01 14 24 38 @%%@AB@%Name Syntax Description%@AE@%───────────────────────────────────────────────────────────────────────────8087 %@AB@%7%@AE@% Displays coprocessor or emulator statusAssemble %@AB@%A%@AE@% «%@AI@%addr%@AE@%» Assembles mnemonics starting at given addressBreak Clear %@AB@%BC%@AE@% {%@AI@%list%@AE@%|*} Clears listed breakpointsBreak Disable %@AB@%BD%@AE@% {%@AI@%list%@AE@%|*} Disables listed breakpointsBreak Enable %@AB@%BE%@AE@% {%@AI@%list%@AE@%|*} Enables listed breakpointsBreak List %@AB@%BL%@AE@% Lists current breakpointsBreak Set %@AB@%BP%@AE@% «%@AI@%addr%@AE@%«%@AI@%pc%@AE@%»«%@AB@%"%@AI@%cmds%@AB@%"%@AE@%»» Sets breakpoint at given address with the specified pass count (%@AI@%pc%@AE@%); given commands are executed at each breakComment * comment Displays explanatory textCompare %@AB@%C %@AI@%range%@AE@% %@AI@%addr%@AE@% Compares bytes in %@AI@%range%@AE@% with bytes Memory beginning at given address; displays mismatchesCurrent %@AB@%.%@AE@% Displays the current source lineLocationDelay %@AB@%:%@AE@% Delays redirected commandsDisplay %@AB@%?%@AI@%expr%@AE@%«%@AB@%,%@AI@%fmt%@AE@%» Displays expression in formatDump %@AB@%D%@AE@%«%@AI@%type%@AE@%» «%@AI@%range%@AE@%» Dumps memory %@AI@%range%@AE@% in %@AI@%type%@AE@% formatEnter %@AB@%E%@AE@%«%@AI@%type%@AE@%» %@AI@%addr%@AE@% «%@AI@%list%@AE@%» Enters memory values in %@AI@%type%@AE@% formatExamine %@AB@%X?%@AI@%mod%@AB@%!%@AI@%proc%@AB@%.%@AE@%{%@AI@%sym%@AE@%|*} Displays symbols in given module andSymbols procedureExecute %@AB@%E%@AE@% Executes in slow motionFill Memory %@AB@%F %@AI@%range%@AE@% %@AI@%list%@AE@% Fills %@AI@%range%@AE@% with the listed valuesGo %@AB@%G%@AE@% «%@AI@%addr%@AE@%» Executes to address or to endHelp %@AB@%H%@AE@% Displays on-line helpLoad %@AB@%L%@AE@% «%@AI@%args%@AE@%» Restarts program with given arguments Move Memory %@AB@%M %@AI@%range%@AE@% %@AI@%addr%@AE@% Copies values in %@AI@%range%@AE@% to the given addressOption %@AB@%O%@AE@%«%@AB@%F|B|C|3%@AE@%«+|-»» Toggles flip/swap, bytes coded, case sense, or 386 optionPause %@AB@%"%@AE@% Interrupts redirected commands and waits for keystrokePort Input %@AB@%I %@AI@%port%@AE@% Displays byte from %@AI@%port%@AE@%%@CR:9 @%Port Output %@AB@%O %@AI@%port%@AE@% %@AI@%value%@AE@% Sends byte value to %@AI@%port%@AE@%Program Step %@AB@%P%@AE@% «%@AI@%count%@AE@%» Executes, stepping over calls; repeats %@AI@%count%@AE@% timesQuit %@AB@%Q%@AE@% Exits to DOSRadix %@AB@%N%@AE@%«%@AI@%radix%@AE@%» Sets input radixRedirection «%@AB@%T%@AE@%»>«>»%@AI@%device%@AE@% Redirects input or output to or <%@AI@%device%@AE@% from %@AI@%device%@AE@% =%@AI@%device%@AE@%Redraw %@AB@%@%@AE@% Redraws the screenRegister %@AB@%R%@AE@%«%@AI@%register%@AE@%««=»%@AI@%expr%@AE@%»» Displays registers and flags, or sets new registers and flagsScreen \ Displays the output screenExchangeSearch Text /«%@AI@%regexpr%@AE@%» Searches for a regular expressionSearch %@AB@%S %@AI@%range%@AE@% %@AI@%list%@AE@% Searches %@AI@%range%@AE@% for listed values, and Memory displays where values are foundSet Mode %@AB@%S%@AE@%«+ | - | %@AB@%&%@AE@%» Toggles source, assembly, and mixed modesShell Escape %@AB@%!%@AE@%«%@AI@%command%@AE@%» Escapes to a new DOS shellStack Trace %@AB@%K%@AE@% Displays routines currently active on the stackTab Set %@AB@%#%@AI@%number%@AE@% Sets tab size to %@AI@%number%@AE@%Trace %@AB@%T%@AE@% «%@AI@%count%@AE@%» Executes, tracing into calls; repeats %@AI@%count%@AE@% timesTracepoint %@AB@%TP? %@AI@%expr%@AE@%«%@AB@%,%@AI@%fmt%@AE@%» Breaks when given expression or %@AB@%TP%@AE@%«%@AI@%type%@AE@%» %@AI@%range%@AE@% memory value range changes; displays in watch windowUnassemble %@AB@%U%@AE@%«%@AI@%range%@AE@%» Displays unassembled instructionsUse %@AB@%USE%@AE@%«%@AI@%language%@AE@%» Switches expression evaluatorsView %@AB@%V%@AE@% «.«%@AI@%file%@AE@%:»%@AI@%line%@AE@%» Displays specified source lines of given fileWatch %@AB@%W? %@AI@%expr%@AE@%«%@AB@%,%@AI@%fmt%@AE@%» Displays given expression or memory %@AB@%W%@AE@%«%@AI@%type%@AE@%» %@AI@%range%@AE@% %@AI@%range%@AE@% in watch windowWatch Delete %@AB@%Y%@AE@%{%@AI@%number%@AE@%|*} Deletes (yanks) the given watch statementsWatch List %@AB@%W%@AE@% Lists watch statementsWatchpoint %@AB@%WP? %@AI@%expr%@AE@%«%@AB@%,%@AI@%fmt%@AE@%» Breaks when given expression is true; displays in watch window%@CR:10 @%%@NL@%%@TE: 122 6248 01 14 24 38 @%
%@TH: 014 778 01 11 65 @%%@AB@%Option Action%@AE@%───────────────────────────────────────────────────────────────────────────%@AB@%/D%@AE@% Displays the last modification date of each file as the%@QR:make /d@% file is scanned%@AB@%/I%@AE@% Ignores exit codes returned by programs called from the%@QR:make /i@% %@AB@%MAKE%@AE@% description file; %@AB@%MAKE%@AE@% continues execution of the next lines of the description file despite the errors%@AB@%/N%@AE@% Displays commands that would be executed by a description%@QR:make /n@% file, but does not actually execute the commands%@AB@%/S%@AE@% Executes in silent mode; lines are not displayed as they%@QR:make /s@% are executed%@TE: 014 778 01 11 65 @%
%@NL@%
%@3@%%@AB@%Syntax for MAKE Files%@AE@%%@CR:MAKE-3 @%%@EH@%%@NL@%
%@NL@%
«%@AI@%macrodefinitions%@AE@%»%@NL@%
«%@AI@%inferencerules%@AE@%»%@NL@%
%@AI@%dependencyrules%@AE@%%@NL@%
%@NL@%
%@NL@%
%@3@%%@AB@%Syntax for Macro Definitions%@AE@%%@CR:MAKE-4 @%%@EH@%%@QR:make macro@%%@QR:make macros@%%@NL@%
%@NL@%
%@AI@%name%@AB@%=%@AI@%value%@AE@%%@NL@%
%@NL@%
%@NL@%
%@3@%%@AB@%Syntax for Inference Rules%@AE@%%@CR:MAKE-5 @%%@EH@%%@QR:make inference rules@%%@QR:make inference@%%@NL@%
%@TH: 005 00309 01 11 65 @%%@AB@%Name Value Substituted%@AE@%───────────────────────────────────────────────────────────────────────────%@AB@%$*%@AE@% Base-name portion of the outfile (no extension)%@AB@%$@%@AE@% Complete outfile name%@AB@%$**%@AE@% Complete list of infiles%@TE: 005 00309 01 11 65 @%
%@TH: 013 00505 01 11 65 @%%@AB@%Code Task Description%@AE@%───────────────────────────────────────────────────────────────────────────+ Appends an object file or library file- Deletes a module-+ Replaces a module by deleting it and appending an object file with the same name* Copies an object module onto an independant object file-* Moves a module out of the library by copying it to an object file and then deleting it%@TE: 013 00505 01 11 65 @%
%@TH: 008 558 01 20 56 @%%@AB@%Option Effect%@AE@%───────────────────────────────────────────────────────────────────────────%@AB@%/STACK %@AI@%hexnum%@AE@% Sets the stack size by setting the initial value of %@AB@%SP%@AE@%%@QR:exemod /stack@% to %@AI@%hexnum%@AE@%%@AB@%/MIN %@AI@%hexnum%@AE@% Sets the minimum allocation value to %@AI@%hexnum%@AE@% paragraphs%@QR:exemod /min@%%@AB@%/MAX %@AI@%hexnum%@AE@% Sets the maximum allocation value to %@AI@%hexnum%@AE@% paragraphs%@QR:exemod /max@%%@TE: 008 558 01 20 56 @%
Marks the end of a module and, optionally, sets the program entry
point to %@AI@%startaddress%@AE@%.%@NL@%
%@NL@%
%@AB@%ENDIF%@AE@%%@CR:ENDIF @%%@QR:endif@%%@NL@%
Terminates a conditional block. See %@AB@%IF%@AE@%%@BO: ce59@%.%@NL@%
%@NL@%
%@AB@%ENDM%@AE@%%@CR:ENDM @%%@QR:endm@%%@NL@%
Terminates a macro or repeat block. See %@AB@%MACRO%@AE@%%@BO: dfe4@%, %@AB@%REPT%@AE@%%@BO: eb64@%, %@AB@%IRP%@AE@%%@BO: d96b@%, or %@AB@%IRPC%@AE@%%@BO: daf8@%.%@NL@%
%@4@%Each encoding variation may have different syntaxes corresponding to%@EH@%
different addressing modes. The following abbreviations are used:%@NL@%
%@NL@%
%@AI@%reg%@AE@% A general-purpose register of any size%@NL@%
%@NL@%
%@AI@%segreg%@AE@% One of the segment registers: %@AB@%DS%@AE@%, %@AB@%ES%@AE@%, %@AB@%SS%@AE@%, or %@AB@%CS%@AE@% (also %@AB@%FS%@AE@% or %@AB@%GS%@AE@%
on the 80386)%@NL@%
%@NL@%
%@AI@%accum%@AE@% An accumulator register of any size: %@AB@%AL%@AE@% or %@AB@%AX%@AE@% (also %@AB@%EAX%@AE@% on the
80386)%@NL@%
%@NL@%
%@AI@%mem%@AE@% A direct or indirect memory operand of any size%@NL@%
%@NL@%
%@AI@%label%@AE@% A labeled memory location in the code segment%@NL@%
%@NL@%
%@AI@%src%@AE@%,%@AI@%dest%@AE@% A source or destination memory operand used in a string
operation%@NL@%
%@NL@%
%@AI@%immed%@AE@% A constant operand%@NL@%
%@NL@%
%@4@%In some cases abbreviations have numeric suffixes to specify that the%@EH@%
operand must be a particular size. For example, %@AI@%reg16%@AE@% means that only
%@4@%The operand-size prefix determines the size of operands. It can override%@EH@%
the default size of registers or memory operands. The operand-size
prefix byte is 66h. %@AB@%MASM%@AE@% automatically inserts this byte where
appropriate.%@NL@%
%@NL@%
%@4@%In 32-bit mode, the default sizes for operands are 8 bits and 32 bits%@EH@%
(depending on the %@AI@%w%@AE@% bit). The operand-size prefix must be used for any
instructions that use 16-bit operands. In 16-bit mode, the default sizes
are 8 bits and 16 bits. The prefix must be used for any instructions
that use 32-bit operands.%@NL@%
%@NL@%
%@CR:31 @%%@NL@%
%@3@%%@AB@%Encoding Differences for 32-bit Operations%@CR:Proc1.6.5 @%%@AE@%%@EH@%%@QR:32 bit differences@%%@QR:32-bit differences@%%@QR:encoding differences@%%@QR:32-bit operations@%%@QR:32 bit operations@%%@NL@%
%@NL@%
%@4@%When 32-bit operations are performed, the meaning of certain bits or%@EH@%
fields are different than for 16-bit operations. The changes may affect
default operations in 32-bit mode, or 16-bit mode operations in which
the address-size prefix or the operand-size prefix is used. The
following fields may have a different meaning for 32-bit operations
than the meaning described in the Interpreting Encodings section:%@NL@%
%@NL@%
%@AI@%w%@AE@% %@AU@%Word/byte bit.%@AE@% If set, use 32-bit operands. If cleared, use
8-bit operands.%@NL@%
%@NL@%
%@AI@%s%@AE@% %@AU@%Sign bit.%@AE@% If set, sign-extend 8-bit or 16-bit immediate data
to 32 bits.%@NL@%
%@NL@%
%@AI@%mod%@AE@% %@AU@%Mode.%@AE@% This field indicates the register/memory mode. The value
11 still indicates a register-to-register operation with %@AI@%r/m%@AE@%
containing the code for a 32-bit source register. However,
other codes have different meanings as shown in the tables
in the next section.%@NL@%
%@NL@%
%@AI@%reg%@AE@% %@AU@%Register.%@AE@% The codes for 16-bit registers are extended to 32-
bit registers. For example, if the reg field is 000, %@AB@%EAX%@AE@% is
used instead of %@AB@%AX%@AE@%. Use of 8-bit registers is unchanged.%@NL@%
%@NL@%
%@AI@%sreg%@AE@% %@AU@%Segment register.%@AE@% The 80386 has the following additional
segment registers:%@NL@%
%@NL@%
%@AU@%sreg%@AE@% %@AU@%Register%@AE@%%@NL@%
100 %@AB@%FS%@AE@%%@NL@%
101 %@AB@%GS%@AE@%%@NL@%
%@NL@%
%@AI@%r/m%@AE@% %@AU@%Register/memory.%@AE@% If the %@AI@%r/m%@AE@% field is used for the source
register, 32-bit registers are used as for the %@AI@%reg%@AE@% field.
If the field is used for memory operands, the meaning is
completely different than for 16-bit operations, as shown
in the tables in the next section.%@NL@%
%@NL@%
%@AI@%disp%@AE@% %@AU@%Displacement.%@AE@% This field is four bytes for 32-bit addresses.%@NL@%
%@NL@%
%@AI@%data%@AE@% %@AU@%Data.%@AE@% Immediate data can be up to four bytes.%@NL@%
%@NL@%
%@CR:32 @%%@NL@%
%@3@%%@AB@%Scaled Index Base Byte%@CR:Proc1.6.6 @%%@AE@%%@EH@%%@QR:scaled index base byte@%%@QR:scaled index byte@%%@QR:scaled index base@%%@QR:scaled base byte@%%@QR:base byte@%%@NL@%
%@NL@%
%@4@%Many 80386 extended memory operands are too complex to be represented by%@EH@%
a single %@AI@%mod-reg-r/m%@AE@% byte. For these operands, a value of 100 in the %@AI@%r/m%@AE@%
field signals the presence of a second encoding byte called the Scaled
Index Base (SIB) byte. The SIB byte is made up of the following fields:%@NL@%
%@FC@%1. %@AI@%BBB%@AE@% is 100 for %@AB@%BT%@AE@%, 111 for %@AB@%BTC%@AE@%, 110 for %@AB@%BTR%@AE@%, and 101 for %@AB@%BTS%@AE@%.%@EF@%1%@AI@%,r/m%@AE@% │ %@AI@%disp%@AE@% %@AI@%(0,%@AE@% %@AI@%2,%@AE@% %@AI@%or%@AE@% %@AI@%4)%@AE@% %@AI@%data%@AE@% %@AI@%(1)%@AE@%%@NL@%
%@FC@%1. %@AI@%BBB%@AE@% is 100 for %@AB@%BT%@AE@%, 111 for %@AB@%BTC%@AE@%, 110 for %@AB@%BTR%@AE@%, and 101 for %@AB@%BTS%@AE@%.%@EF@%1 │ │ %@AI@%mod,reg,r/m%@AE@% │ %@AI@%disp%@AE@% %@AI@%(0,%@AE@% %@AI@%2,%@AE@% %@AI@%or%@AE@% %@AI@%4)%@AE@%%@NL@%
%@AB@%Convert Word to Extended Double%@AE@%%@QR:convert@%%@QR:convert word@%%@QR:word to extended double@%%@QR:word to double@%%@QR:convert word to double@%%@NL@%
%@AB@%80386 Only%@AE@%%@NL@%
┌───┬───┬───┬───┬───┬───┬───┬───┬───┐%@NL@%
│ O │ D │ I │ T │ S │ Z │ A │ P │ C │%@NL@%
├───┼───┼───┼───┼───┼───┼───┼───┼───┤%@NL@%
│ │ │ │ │ │ │ │ │ │%@NL@%
└───┴───┴───┴───┴───┴───┴───┴───┴───┘%@NL@%
%@NL@%
%@4@%Converts a signed word in %@AB@%AX%@AE@% to a signed doubleword in %@AB@%EAX%@AE@%%@EH@%
by extending the sign bit of %@AB@%AX%@AE@% into all bits of %@AB@%EAX%@AE@%.%@NL@%
%@AB@%Load Far Pointer to Stack Segment%@AE@%%@QR:load far pointer@%%@QR:load far pointer to stack@%%@QR:load pointer to stack@%%@QR:stack segment@%%@NL@%
%@AB@%Move to/from Special Registers%@AE@%%@QR:move to special registers@%%@QR:move from special registers@%%@QR:move to registers@%%@QR:move from registers@%%@QR:move to register@%%@QR:move from register@%%@NL@%
%@AB@%80386 Only%@AE@%%@NL@%
┌───┬───┬───┬───┬───┬───┬───┬───┬───┐%@NL@%
│ O │ D │ I │ T │ S │ Z │ A │ P │ C │%@NL@%
├───┼───┼───┼───┼───┼───┼───┼───┼───┤%@NL@%
│ ? │ │ │ │ ? │ ? │ ? │ ? │ ? │%@NL@%
└───┴───┴───┴───┴───┴───┴───┴───┴───┘%@NL@%
%@NL@%
%@4@%Stores or loads a value from a special register to or from%@EH@%
a 32-bit general purpose register. The special registers include
the control registers %@AB@%CR0%@AE@%, %@AB@%CR2%@AE@%, and %@AB@%CR3%@AE@%; the debug registers
%@AB@%DR0%@AE@%, %@AB@%DR1%@AE@%, %@AB@%DR2%@AE@%, %@AB@%DR3%@AE@%, %@AB@%DR6%@AE@%, and %@AB@%DR7%@AE@%; and the test registers %@AB@%TR6%@AE@% and
%@AB@%TR7%@AE@%. See Intel documentation for details on special registers.%@NL@%
%@AB@%Move with Sign-Extend%@AE@%%@QR:move with sign-extend@%%@QR:move with sign extend@%%@QR:move with sign@%%@QR:sign extend move@%%@QR:sign-extend move@%%@NL@%
%@AB@%80386 Only%@AE@%%@NL@%
┌───┬───┬───┬───┬───┬───┬───┬───┬───┐%@NL@%
│ O │ D │ I │ T │ S │ Z │ A │ P │ C │%@NL@%
├───┼───┼───┼───┼───┼───┼───┼───┼───┤%@NL@%
│ │ │ │ │ │ │ │ │ │%@NL@%
└───┴───┴───┴───┴───┴───┴───┴───┴───┘%@NL@%
%@NL@%
%@4@%Copies and sign-extends the value of the source operand%@EH@%
to the destination register. %@AB@%MOVSX%@AE@% is used to copy a signed
8-bit or 16-bit source operand to a larger 16-bit or 32-bit
%@4@%Pops the top 16 bytes on the stack into the eight general-%@EH@%
purpose registers. The registers are popped in the following
order: %@AB@%DI%@AE@%, %@AB@%SI%@AE@%, %@AB@%BP%@AE@%, %@AB@%SP%@AE@%, %@AB@%BX%@AE@%, %@AB@%DX%@AE@%, %@AB@%CX%@AE@%, %@AB@%AX%@AE@%. The value for the %@AB@%SP%@AE@%
register is actually discarded rather than copied to %@AB@%SP%@AE@%.
%@AB@%POPA%@AE@% always pops into 16-bit registers. On the 80386, use
%@AB@%POPAD%@AE@% to pop into 32-bit registers.%@NL@%
%@FC@%1. %@AI@%TTT%@AE@% represents one of the following bit codes: 100 for
%@FC@%%@AB@%SHL%@AE@% or %@AB@%SAL%@AE@%, 101 for %@AB@%SHR%@AE@%, or 111 for %@AB@%SAR%@AE@%.%@EF@%1,%@AI@%r/m%@AE@%│ %@AI@%disp%@AE@% %@AI@%(0%@AE@% %@AI@%or%@AE@% %@AI@%2)%@AE@%%@NL@%
%@TH: 057 02646 01 15 14 16 31 @%%@AB@%Opcode Mnemonic Flags Checked Description%@AE@%───────────────────────────────────────────────────────────────────────────┌───────────┐│ 10010010 │ %@AB@%SETB/SETNAE%@AE@% CF=1 Set if below/not above or└───────────┘ equal (unsigned comparisons)┌───────────┐│ 10010011 │ %@AB@%SETAE/SETNB%@AE@% CF=0 Set if above or equal/not └───────────┘ below (unsigned comparisons)┌───────────┐│ 10010110 │ %@AB@%SETBE/SETNA%@AE@% CF=1 or ZF=1 Set if below or equal/not └───────────┘ above (unsigned comparisons)┌───────────┐│ 10010111 │ %@AB@%SETA/SETNBE%@AE@% CF=0 and ZF=0 Set if above/not below or └───────────┘ equal (unsigned comparisons)┌───────────┐│ 10010100 │ %@AB@%SETE/SETZ%@AE@% ZF=1 Set if equal/zero└───────────┘┌───────────┐│ 10010101 │ %@AB@%SETNE/SETNZ%@AE@% ZF=0 Set if not equal/not zero└───────────┘┌───────────┐│ 10011100 │ %@AB@%SETL/SETNGE%@AE@% SF¡OF Set if less/not greater or └───────────┘ equal (signed comparisons)┌───────────┐│ 10011101 │ %@AB@%SETGE/SETNL%@AE@% SF=OF Set if greater or equal/not └───────────┘ less (signed comparisons)┌───────────┐│ 10011110 │ %@AB@%SETLE/SETNG%@AE@% ZF=1 or SF╪OF Set if less or equal/not └───────────┘ greater or equal (signed comparisons)┌───────────┐│ 10011111 │ %@AB@%SETG/SETNLE%@AE@% ZF=0 or SF=OF Set if greater/not less or └───────────┘ equal (signed comparisons)┌───────────┐│ 10011000 │ %@AB@%SETS%@AE@% SF=1 Set if sign└───────────┘┌───────────┐│ 10011001 │ %@AB@%SETNS%@AE@% SF=0 Set if not sign└───────────┘┌───────────┐│ 10010010 │ %@AB@%SETC%@AE@% CF=1 Set if carry└───────────┘┌───────────┐│ 10010011 │ %@AB@%SETNC%@AE@% CF=0 Set if not carry└───────────┘┌───────────┐│ 10010000 │ %@AB@%SETO%@AE@% OF=1 Set if overflow└───────────┘┌───────────┐│ 10010001 │ %@AB@%SETNO%@AE@% OF=0 Set if not overflow└───────────┘┌───────────┐│ 10011010 │ %@AB@%SETP/SETPE%@AE@% PF=1 Set if parity/parity even└───────────┘┌───────────┐│ 10011011 │ %@AB@%SETNP/SETPO%@AE@% PF=0 Set if no parity/parity odd└───────────┘%@TE: 057 02646 01 15 14 16 31 @%